package com.wgy.day33其他增强流.Properties属性集合;

import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
import java.util.Set;

/*
可以使用Properties集合中的方法load,把硬盘中保存的文件(键值对),读取到集合中使用
      void load(InputStream inStream):
                       参数:InputStream inStream:字节输入流,不能读取含有中文的键值对

      void load(Reader reader):
                       参数:Reader reader):字符输入流,可以读取含有中文的键值对
                           String comments:注释,用来解释说明保存的文件是做什么用的,不能使用中文,会产生乱码,默认是Unicode编码,一般使用""空字符串

      load使用步骤:1.创建Properties集合对象
                  2.使用Properties集合对象中的方法load读取键值对文件
                  3.遍历Properties集合中

             注意:1.存储键值对的文件中,键与值默认的链接符号可以使用=/空格/其他符号
                 2.存储键值对的文件中,可以使用#进行注释,被#注释的键值对不再会被读取
                 3.存储键值对的文件中,键与值默认就是字符串,不用再加双引号
 */
public class Demo03PropertiesLoad {
    public static void main(String[] args) throws IOException {
        show02();


    }
       //使用字节输入流创建流对象 不能读取含有中文的键值对
    public static void show01() throws IOException {
        //1.创建Properties集合对象
        Properties prop=new Properties();

        //2.使用Properties集合对象中的方法load读取含有中文的键值对文件
        FileInputStream fis=new FileInputStream("D:\\小云\\abc\\b\\prop.txt");//中文
        prop.load(fis);

        //3.遍历Properties集合中
        //使用stringPropertyNames方法把  Properties集合中的键取出,存储到一个Set集合中
        Set<String> set = prop.stringPropertyNames();
        for (String key : set) {
            String value = prop.getProperty(key);
            System.out.println(key+"="+value);
        }

    }

         //使用字符输入流创建流对象 能读取含有中文的键值对
    public static void show02() throws IOException {
        //1.创建Properties集合对象
        Properties prop=new Properties();
        //2.使用Properties集合对象中的方法load读取含有中文的键值对文件
        FileReader fr=new FileReader("D:\\小云\\abc\\b\\prop.txt");
        prop.load(fr);

        //3.遍历Properties集合中
        //使用stringPropertyNames方法把  Properties集合中的键取出,存储到一个Set集合中
        Set<String> set = prop.stringPropertyNames();
        for (String key : set) {
            String value = prop.getProperty(key);
            System.out.println(key+"="+value);

        }



    }

}
